﻿using System;
using CamlQueryCreator.Common;

namespace CamlQueryCreator
{
    /// <summary>
    /// Класс для работы с CAML-запросами.
    /// </summary>
    public static class Caml
    {
        /// <summary>
        /// Получение CAML-запроса.
        /// </summary>
        /// <param name="querySelectors">Методы создания запроса.</param>       
        public static string GetQuery(params Action<CamlBuilder>[] querySelectors)
        {
            var queryBuilder = new CamlBuilder();
            foreach (var querySelector in querySelectors)
                querySelector(queryBuilder);

            return queryBuilder.Query;
        }

        /// <summary>
        /// Получение XML представления, содержащего CAML-запрос.
        /// </summary>
        /// <param name="querySelectors">Методы создания запроса.</param>       
        public static string GetViewXml(params Action<CamlBuilder>[] querySelectors)
        {
            var query = GetQuery(querySelectors);
            return string.Format("<View><Query>{0}</Query></View>", query);
        }
    }    
}
